home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / opus / drmo140.zip / DRM-OPUS.DOC < prev    next >
Text File  |  1993-02-09  |  21KB  |  462 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.                             DRM-OPUS v1.40
  9.         PIONEER DRM-600/610 CD-ROM CHANGER (TM) Interface Program
  10.                                  for
  11.                             Opus 1.7x (TM)
  12.                          Copyright (c) 1992,93
  13.  
  14.                                09/02/93
  15.  
  16.  
  17.                             By:  Niel Uys
  18.  
  19.                              P.O Box 2801
  20.                                Welkom
  21.                                 9460
  22.                             South Africa
  23.  
  24.  
  25.                           LIMIT OF LIABILITY
  26.  
  27.   DRM-OPUS is distributed as-is.  The author disclaims all warranties,
  28.   expressed or implied.  The author will assume no liability for damages
  29.   either from the direct use of this product or as a consequence of the
  30.   use of this product.
  31.  
  32.                             LICENSE TO USE
  33.  
  34.   Anyone may use this program free of charge, provided you do not sell it for
  35.   financial gain. In other words, this is a license to use the program in a
  36.   NON-Commercial environment. If it is used Commercially, you will have to
  37.   contact the author for permission to use the program.  Sysops using the
  38.   program in a NON-Commercial environment, are encouraged to register the
  39.   program, as it is absolutely free of charge. All I need is the following:
  40.  
  41.       1.  Name of Sysop or individual using the program.
  42.       2.  Address, Country and contact telephone number (Voice and Data/Fax).
  43.       3.  Purpose of using the program.
  44.       4.  Where you got the program from and where you heard about it.
  45.  
  46.   Send the above information to the address mentioned on the first page. Of
  47.   course, if you have a FidoNet setup or link, you may send me a netmail
  48.   message with the same information to Niel Uys at 5:7105/1
  49.  
  50.  
  51.                            WHAT IS DRM-OPUS
  52.  
  53.   Drm-Opus is a program to interface the fabulous 6-pack PIONEER DRM-600
  54.   CD-ROM changer to a multiline Opus BBS (CBCS).  That is not all it does,
  55.   as DRM-OPUS can be used by any Opus sysop, even if he/she does not have
  56.   any CD-ROM drives installed!
  57.  
  58.   Let me explain. Originally, this program was only intended for the Pioneer
  59.   CDROM and Opus, but it has been expanded so much, that certain features,
  60.   might actually appeal to most Opus CBCS sysops, and for the following
  61.   reasons:
  62.  
  63.     1. Uploads can be done as well as downloads with DRM-OPUS, and effectively
  64.        replaces the internal protocol engine, with Omen Technologies excellent
  65.        DSZ or GSZ external protocol driver, featuring the original Zmodem,
  66.        Ymodem and Ymodem-G protocol's, as well as the resent MobyTurbo and
  67.        Zmodem-90 protocol's, etc... Of course, the Xmodem and 1K-Xmodem
  68.        protocol's are also still there.
  69.     2. Because of the upload capability of DRM-OPUS, things like Virus scans
  70.        after an upload from a user can be done, as well as the removal of
  71.        unwanted tagfile information, and also the adding of your own tag
  72.        information, etc. This is not implimented yet, but will be an optional
  73.        extra very soon...
  74.     3. For downloading, tag information, on CD-ROM's can be changed/removed
  75.        in flight, not possible previously, with any archive, because the files
  76.        are copied from CD-ROM to R/W disk! This feature is also not yet built
  77.        in, but will be soon!
  78.  
  79.                             WHY DRM-OPUS?
  80.  
  81.   Although the PIONEER DRM-600 can handle up to 6 CD-ROM disks, only one CD
  82.   ROM can be accessed at any one time. On Single line BBS's, it is no problem,
  83.   but when 2 or more nodes (lines) are installed on a BBS, it becomes a
  84.   serious problem when more than one user tries to access/download from
  85.   different CD disks. It is especially anoying when using highspeed 9600
  86.   modems, as all nodes keep on timing out, while waiting for the CD-ROM drive.
  87.   It must be remembered that the DRM-600/610 takes up to 7 seconds to change
  88.   disks, and you can well imagine what would happen on a system, using 8
  89.   nodes, where 6 users are using a different CD-ROM disks at the same time.
  90.  
  91.                       THE SOLUTION TO THE PROBLEM
  92.  
  93.   Well, DRM-OPUS is suppose to sort out this problem. Many other programs have
  94.   been written to solve the problem with this drive, but I have seen none that
  95.   worked for OPUS. Being an Opus sysop, and owning a DRM-600, I wrote my own
  96.   interface program. The concept is the same as with most of the programs I
  97.   have seen, and in fact, very similar to the one's in existance. The FOSSIL
  98.   interface routines, which of course, belongs to the FSC-0015 document,
  99.   written by Rick Moore, laying down the FOSSIL version 5 specification, are
  100.   implimented and an external protocol, called DSZ is used. It is advised to
  101.   use a registered version of DSZ, and is cheap enough. DSZ can be found on
  102.   most BBS's, and was written by Chuck Forsberg (Omen Technology)...
  103.  
  104.   The program works as follows. First it is set up as an external protocol to
  105.   Opus, which will be explained later.  The basic idea is to call up the
  106.   external protocol, after the user typed in the files he/she want's to
  107.   download. These file then get's copied to Read/Write disk, therefore only
  108.   accessing the CDROM drive for a very short period of time, freeing it for
  109.   other users to access. The user then actually downloads the files from the
  110.   Read/Write (normally a hard drive) Disk, deleting them, when finished,
  111.   etc... Fossil I/O is used throughout, except when the external DSZ protocol
  112.   is called for the actual download.
  113.  
  114.   So even when two or more users want to download files from different
  115.   CD-ROM's, the program will copy the files quickly, which might hold up the
  116.   user for a few seconds or so, but let the user download his/her files in
  117.   peace. In fact, currently, all files are copied, be they on CD-ROM or not!
  118.  
  119.                             WHAT IS NEEDED
  120.  
  121.   1. DRM-600/610 CD-ROM Changer (But non CDROM sysops are welcome as well!)
  122.   2. The DRM-OPUS program (Normally the latest copy)
  123.   3. Opus v1.7x and experience on how it works :-)
  124.   4. FOSSIL version 5, like BNU, X00, OpusComm. (X00 recomended!)
  125.   5. DSZ.COM or DSZ.EXE, setup in your path. Preferably, it should be
  126.      registered, otherwise, the users won't able to use MobyTurbo/Zmodem-90?
  127.  
  128.                         INSTALATION of DRM-OPUS
  129.  
  130.   Step 1.
  131.   ======
  132.   Copy the DRM-OPUS.EXE and DRM-OPUS.CFG files to your Opus directory, or
  133.   where LASTUSxx.DAT/FILESBBS.DAT, etc, is stored.
  134.  
  135.   PLEASE NOTE!: (Courtesy: Michael Goddard 1:163/140@fidonet)
  136.   ------------
  137.   Do not attempt to rename and run DRM-OPUS.EXE.  You will be
  138.   tempted to do this if you have already configured an external protocol
  139.   that begins with the letter `D', like DSZ-ZMOD.  Opus will create a
  140.   file like DRMOP##.CTL when it starts up the protocol, where ## represents
  141.   the task  number (like DRMOP01.CTL).  This file is used by DRM-OPUS for
  142.   control information, including the name of the file to send.  If you
  143.   rename DRM-OPUS.EXE, Opus will create the .CTL file based on the renamed
  144.   protocol and DRM-OPUS.EXE will not find DRMOP##.CTL.  If DRM-OPUS
  145.   fails to find the control file, it will report something like Error 52
  146.   at pgm-ctr: 25715 (the value of 25715 may vary between versions of
  147.   DRM-OPUS).
  148.  
  149.  
  150.   Step 2.
  151.   ======
  152.   Before running Opus, be sure to include a SET environment variable
  153.   pointing to DSZLOG.  For example include a line like
  154.  
  155.          SET DSZLOG=C:\OPUS\DSZLINE1.LOG
  156.  
  157.   DRM-OPUS will use an internal name for DSZLOG, but it is important to
  158.   reserve environment space in DOS for this internal name.  When Opus
  159.   runs DRM-OPUS, it offers only the amount of environment space that has
  160.   been *used* when DRM-OPUS is run.  It does not offer the amount of
  161.   environment space *reserved*, for example in the SHELL command in
  162.   CONFIG.SYS.  For this reason, you might want to use a long file name
  163.   to the right of SET DSZLOG=.
  164.  
  165.   If DRM-OPUS does not have a sufficiently large environment space to
  166.   create its own DSZLOG variable, it may report something like:
  167.  
  168.        Out of memory or environment space @ address 1O4216
  169.  
  170.   (The value 104216 may vary between installations).
  171.  
  172.   If you see the "out of memory or environment space" error message,
  173.   it is more likely to be an environment space problem.  Opus with
  174.   DRM-OPUS has run successfully with as little as 340k DOS memory.
  175.  
  176.   Step 3.
  177.   =======
  178.   Make 100% sure, you have your DSZ.COM or DSZ.EXE in your DOS path or in the
  179.   directory, where you run Opus from.
  180.  
  181.   You may also use GSZ of course, but because DSZ is the hardcoded name used,
  182.   you will have to rename GSZ.COM (.EXE) to DSZ.COM (.EXE). I have not tested
  183.   this, but don't see why it should not work...
  184.  
  185.   BTW, Lawrence Gould from 3:712/535 (Australia), reported that GSZ works!
  186.  
  187.  
  188.   Step 4.
  189.   =======
  190.   Edit your DRM-OPUS.CFG file to reflect your configuration. You have to
  191.   specify a HOLD directory. This directory will hold the download files,
  192.   selected for download by the user, so you must make abosolutely sure you
  193.   have enough disk space. The easiest is to take your maximum daily Kilobyte
  194.   limit per user, and multiply it by the number of nodes. So if your maximum
  195.   daily Kilobyte limit is say 2400 kb, and you have 4 nodes, you should not
  196.   need more than 9.6Mb or 9600kb of disk space. This, of course, is the
  197.   absolute maximum that will be needed at any one time, but I am sure you can
  198.   cut this by at least 50%, as in practice, you will seldom get 4 user,
  199.   downloading their maximum capacity in any one transfer! If it happens, you
  200.   might want to write to the Guiness Book of Records <grin>...
  201.  
  202.   Ram disks may be used, but keep the above in mind, otherwise, you are going
  203.   to have upset users, when running out of disk space, etc... :-)
  204.  
  205.   Step 5.
  206.   ======
  207.   You may enable a LOG file, by specifying it in the control file
  208.   (DRM-OPUS.CFG), and is recomended at first, or when running into problems.
  209.  
  210.   Three levels area allowed with the LOGLEVEL command, where:
  211.  
  212.       LOGLEVEL 0  =  No log information is saved
  213.       LOGLEVEL 1  =  Minimum log information
  214.       LOGLEVEL 2  =  Medium log information  (Normal recomended level)
  215.       LOGLEVEL 3  =  All information saved
  216.       LOGLEVEL 4  =  Diagnostic mode (Only use this when running into trouble
  217.                      as this level will also dump the DSZ.LOG files to your
  218.                      OpusXX.log file, etc. I will normally request you to use
  219.                      this level, when you are having problems, etc...)
  220.  
  221.   Step 6
  222.   ======
  223.  
  224.   The restrict command is a command, that is passed on to DSZ, if you want
  225.   to place some sort of security on your BBS, where uploads are concerned.
  226.   You may enable or diable this.
  227.   Here is an extract from the DSZ documentation:
  228.  
  229.   restrict Restrict incoming pathnames (YMODEM/ZMODEM) to the current disk
  230.            and directory tree, and disallow modification or overwriting of
  231.            existing files.  This command is vital for bulletin boards
  232.            uploading files.  The restrict command causes partially received
  233.            files to be deleted.  When DSZ is restricted, it will refuse to
  234.            transfer files containing the string autoexec.bat and command.com
  235.            in upper or lower case.  This provides some defense from malicious
  236.            uploaded files.
  237.  
  238.   Step 7
  239.   ======
  240.   Duplicate file detection is now also built in. It seems unavoidable,
  241.   especially on CD-ROM's, to have duplicate file names, all over the disks,
  242.   and more so on a DRM-600 Pioneer drive. This can be sorted out by the
  243.   sysop...but oh my oh my...what a job! When Opus passes more than one
  244.   filename from different CD-ROM's, or normal Disks, of the exact same
  245.   filename (and extention), DRM-OPUS will now detect that, and only
  246.   copy/transmit the very first file found, and ignor the duplicates. For those
  247.   that think they have sorted out there duplicates or those that don't like
  248.   the duplicate detection, there is an option in the DRM-OPUS.CFG to disable
  249.   this. just uncomment NODUPES and NO duplicate detection will be done! This
  250.   is however not recommended, as when DRM-OPUS deletes the files, after a
  251.   a download from the hold directory, you get an error logged in the
  252.   OpusXX.log file of "File not found", if there really were duplicates found.
  253.  
  254.   Step 8
  255.   ======
  256.   In the control file, you must also specify port addresses, interupts and
  257.   locked baudrates, etc, especially when running under Desqview. These values
  258.   are specificly used to set DSZ according to your hardware.
  259.  
  260.   Of course, if you run a pure LAN system, you would run one node per machine,
  261.   and would probably only use COM1 or COM2. In this case, you don't have to
  262.   worry about the PORT statements, as they are standard and defaults are used.
  263.   They may therefore be commented out, UNLESS you need to lock the baudrate!!!
  264.   Best is to leave it as is, etc...
  265.  
  266.   DRM-OPUS itself, is not depended on these values, only the external DSZ
  267.   protocol driver program! So when DRM-OPUS works, and DSZ not, please check
  268.   the PORTx statements in the DRM-OPUS.CFG file for correctness, etc...
  269.  
  270.   PORT1 to PORT8 may be used to remap the port I/O address, for DSZ. If it
  271.   is not specified, or commented out with ; or %, then defaults for
  272.   COM1 and COM2 will be used, namely:
  273.  
  274.            PORT1 3F8,4,0   <---+-- Please note, baudrate not locked!
  275.            PORT1 2F8,3,0   <---+
  276.  
  277.   BE sure what you are doing when fiddling with these values, as unpredictable
  278.   results will occur, when wrong values are entered...
  279.  
  280.   Remember, first paramater is the PORT ADDRESS, second the INTERRUPT, and
  281.   third the Interface speed (Locked speed). Leave last parameter as 0, when
  282.   you do not wish to lock the baudrate!
  283.  
  284.   Also remember to lock your FOSSIL, or use the same locked baudrate as your
  285.   FOSSIL. This must be clearly understood, otherwise, you will run into
  286.   problems :-)
  287.  
  288.   VERY IMPORTANT!!!: If you do not lock the baudrate, like most common on
  289.   highspeed modems, use 0 for the baudrate. The user connect rate will then
  290.   be used!!!
  291.  
  292.   With X00 as a device driver in your CONFIG.SYS, it might be:
  293.  
  294.   X00.SYS E 0=3F8,IRQ4 1=2F8,IRQ3 2=2B0,IRQ7 3=368,IRQ5 B,0,38400 B,1,38400
  295.   B,2,19200 B,3,19200 T=1024 R=2048 FIFO=15 VP=2BF,8F
  296.  
  297.   In the above, 4 ports are used, using X00's capability to map ports 2 and 3
  298.   to different I/O port addresses, with non standard IRQ's, and locking all 4
  299.   comport's baudrates, etc...  In fact, the above is what I use on my BBS,
  300.   using 3 ports from an AST 4 port card, using it in Compatible mode, with
  301.   Com1 and Com2 standard, and Com3 (port 2) on I/O address 2B0, IRQ 7, and an
  302.   internal card modem, using I/O port 368, with IRQ 5, as Com4.
  303.  
  304.   Please consult the X00 docs for further info on the above.
  305.  
  306.   * Here are some examples of simple PORT commands for DRM-OPUS.CFG
  307.  
  308.     (a) Use COM1 without a locked FOSSIL:        PORT1 3F8,4,0
  309.     (b) Use COM1 with a FOSSIL locked at 38400:  PORT1 3F8,4,38400
  310.     (c) Use COM2 without a locked FOSSIL:        PORT2 2F8,3,0
  311.     (d) Use COM2 with a FOSSIL locked at 38400:  PORT2 2F8,3,38400
  312.  
  313.  
  314.   Step 9.  BBS.CTL or SESSION.CTL file (Depended on your configuration)
  315.   ======
  316.  
  317.   In your Opus control file, first of all include the new protocol:
  318.  
  319.         EXTERNAL Protocol C:\OPUS\DRM-OPUS.EXE
  320.  
  321.   and compile it with NACL (SALT) that comes with Opus.
  322.  
  323.   Please note the extention of .EXE. If not put in, Opus will complain about
  324.   DRM-OPUS not found, etc...
  325.  
  326.   Step 10.  BBS.CTL or MENU.CTL file (Depended on your configuration)
  327.   =======
  328.  
  329.   DISABLE or RAISE the access level of SET_DEF to at least SYSOP and compile
  330.   it also with NACL copying it to your language directory as ENGLISH.MNU.
  331.   Also do the same, if you have other language Menu files of course.
  332.  
  333.   So...
  334.  
  335.         SET_DEF             Sysop         "Default Protocol"
  336.  
  337.                              OR
  338.  
  339.   %     SET_DEF            Disgrace       "Default Protocol"
  340.  
  341.   Will do the trick!
  342.  
  343.  Step 11.
  344.  =======
  345.  
  346.   If you did step 1, namely to copy the DRM-OPUS.EXE file to your Opus
  347.   directory, run DRM-OPUS -u from the command line. This will change ALL your
  348.   user's default protocol's to 'D' for the DRM-OPUS protocol!  A backup of
  349.   your USER.DAT file will be made, called USER.BAK. If run a second time,
  350.   DRM-OPUS will warn you, and asked, if the backup file can be overidden!  It
  351.   is actually only needed once to run DRM-OPUS -u like this, as the next step
  352.   will explain, how new users's default protocol's will be changed to 'D' for
  353.   DRM-OPUS as well!
  354.  
  355.  Step 12.
  356.  =======
  357.  
  358.   Take your NEWUSER2.BBS (or more convenient NEWUSER2.OEC) and include the
  359.   following statement:
  360.  
  361.   [DOSN]drm-opus -L -t#   (If you use the OEC compiler)
  362.  
  363.          OR
  364.  
  365.   ^OJdrm-opus -L -t#
  366.  
  367.   Note: The # will automaticly be replaced by the task number. This is a
  368.   feature of OPUS. You may of course substitude the # with the actual task
  369.   number, but this means, you'll have to have a NEWUSER2.BBS file for each
  370.   task you are running!
  371.  
  372.   The reason for including the above in your NEWUSER2.BBS file, is as follows:
  373.  
  374.   In step 10, you set all users default protocol to "D" for DRM-OPUS, and you
  375.   disallow your users to change from the DRM-OPUS protocol to anything else in
  376.   Step 9!  This is all very well, but new users won't have their default
  377.   protocol set to DRM-OPUS when logging on first. The NEWUSER2.BBS file is
  378.   only presented once, after logging on, for a new user for the first time.
  379.   This is where step 11 (This step) comes in. The above command will change
  380.   the LASTUSxx.DAT file of the new user loggin on, and cause Opus to reload
  381.   the information back into the USER.DAT file, thereby forcing the new user to
  382.   also use DRM-OPUS as a default protocol! Cleaver huh?...:-)
  383.  
  384.   Well, there is one snag, you have to make sure of the following, otherwise,
  385.   it won't work.  Set the following in your BBS.CTL or SESSION.CTL (Depending
  386.   on your setup of course) to at least the following:
  387.  
  388.         % Outside information
  389.         %
  390.         Secure  2
  391.  
  392.   Please refer to the Opus technical reference manual on how this works. The
  393.   main thing is, for step 11 to work, you have to get Opus to reload the
  394.   LASTUSxx.DAT file, when shelling to external programs, etc... I hope this
  395.   makes sense... if not, just do as I say :-)
  396.  
  397.                            FUTURE PLANS
  398.  
  399.   1. I plan on incorporating other external protocols, like SeaLink, HSLink,
  400.      maybe, even BiModem and others.
  401.   2. Maybe support for other BBS packages, if requested.
  402.   3. Write a proper door to replace the internal protocol engine.
  403.   4. Now with the upload capability, I want to implement tagfile removal/adding
  404.      and possible virus scanning for uploads, etc...
  405.  
  406.                           HOW TO CONTACT ME
  407.  
  408.   I may be contacted on FidoNet at 5:7105/1, or phoned at +27-171-84327
  409.   between 16:00 and 20:00 GMT or 18:00 to 22:00 SAST. This is because I like
  410.   my sleep these days...:-)
  411.  
  412.   BBS access is also available at the following numbers:
  413.  
  414.    +27-171-84102   USRobotics HST/DS 16.8k / V32bis / V42bis
  415.    +27-171-81157   USRobotics HST/DS 16.8k / V32bis / V42bis
  416.    +27-171-84278   USRobotics HST     9.6k
  417.    +27-171-84279   Speedmodem CSP     9.6k
  418.  
  419.                           BUG REPORTING
  420.  
  421.   When having problems, or if you detect bugs, or problems, or in fact,
  422.   anything not to your liking, including improvements, or suggestion, please
  423.   inform me, using the info found above on how to contact me. The prefered
  424.   method, is via netmail on FidoNet, but you may phone me (Expensive way :-),
  425.   or write to me (Slow method), but whatever way you do, you have to let me
  426.   have the following information:
  427.  
  428.      1.  Logging level 4 set!
  429.      2.  OpusXX.log files!
  430.      3.  Your DRM-OPUS.CFG config file
  431.      4.  Config.sys and Autoexec.bat
  432.      5.  What machine your are running on(8088/80286/80486, etc)
  433.      6.  Software used (Don't forget the versions), like MSDOS, Desqview,
  434.          Qemm, Novelle, Lantastic, etc, etc.
  435.      7.  DSZ version, and if it is registered. (Don't worry, I won't report
  436.          you :-)
  437.      8.  Also, not important, but I'd like to know, what hardware you use,
  438.          like, SCSI/ESDI disks and controllers, screen adapters (VGA, etc and
  439.          possible chipset, like Tjeng, or ET4000, etc).
  440.      9.  What serial card you use, especially, if it is a multi port card (4
  441.          ports or more, etc and if it is inteligent...)
  442.  
  443.                           ACKNOWLEDGEMENTS
  444.                           ................
  445.  
  446.      ZMODEM-90(TM), MobyTurbo(TM), True YMODEM(TM), OverThruster(TM),
  447.      are Omen Technology trademarks.
  448.  
  449.      True YMODEM(TM) is an Omen Technology Trademark signifying YMODEM
  450.      protocol support that meets the full YMODEM specification.
  451.  
  452.      DSZ and GSZ are Copyright 1991 by Omen Technology Inc,
  453.  
  454.      DRM-600 CD-ROM CHANGER are trademarks of the Pioneer corporation.
  455.  
  456.      FidoNet, Fido is a trademark of Tom Jennings.
  457.  
  458.  
  459.  
  460.  
  461.       ooooooooooooooooooooOOOOOOOOOOOOOOOOOOOOOOOOOooooooooooooooooooooo
  462.